﻿using DevExpress.XtraGrid.Demos.util;
using DTOConsoleApp.尖山数据;
using Luna小店.DTO.坚山;
using Luna小店.DTO.尖山;
using Luna小店.service;
using Luna小店.service.redis_service;
using System;
using System.Linq;

namespace DTOConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            //  基本信息
            new 坚山基本信息Service().save坚山基本信息(尖山数据Service.xxx());

            String json = FunctionHelper.JsonSerialization(
                                    new 坚山基本信息Service().get坚山基本信息()
                    );

            Console.WriteLine(
                json
                );
            ////设计点男
            // new 设计点Serice().save设计点(尖山数据Service.getDTO设计_男());

            ////版型和设计点key的关联
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("KS01", "设计点1"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("KS02", "设计点1"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("KS03", "设计点1"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("KS04", "设计点1"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("1FSSK1", "设计点1"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("2FSSK1", "设计点1"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("5FSSK1", "设计点1"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("1FS", "设计点1"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("1FSS1", "设计点1"));

            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("KS01", "设计点2"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("KS02", "设计点2"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("KS03", "设计点2"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("KS04", "设计点2"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("1FSSK1", "设计点2"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("2FSSK1", "设计点2"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("5FSSK1", "设计点2"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("1FS", "设计点2"));
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("1FSS1", "设计点2"));

            //new 参考款Service().save参考款(new DTO参考款("KS01", "76443"));
            //new 参考款Service().save参考款(new DTO参考款("KS02", "76931"));
            //new 参考款Service().save参考款(new DTO参考款("KS03", "76887"));
            //new 参考款Service().save参考款(new DTO参考款("KS04", "77442"));
            //new 参考款Service().save参考款(new DTO参考款("1FSSK1", "7774839"));
            //new 参考款Service().save参考款(new DTO参考款("2FSSK1", "77588"));
            //new 参考款Service().save参考款(new DTO参考款("5FSSK1", "7774907"));
            //new 参考款Service().save参考款(new DTO参考款("1FS", "7774897"));
            //new 参考款Service().save参考款(new DTO参考款("1FSS1", "7774405"));

            //new 参考款Service().save参考款(new DTO参考款("KS01", "设计点2"));
            //new 参考款Service().save参考款(new DTO参考款("KS02", "设计点2"));
            //new 参考款Service().save参考款(new DTO参考款("KS03", "设计点2"));
            //new 参考款Service().save参考款(new DTO参考款("KS04", "设计点2"));
            //new 参考款Service().save参考款(new DTO参考款("1FSSK1", "设计点2"));
            //new 参考款Service().save参考款(new DTO参考款("2FSSK1", "设计点2"));
            //new 参考款Service().save参考款(new DTO参考款("5FSSK1", "设计点2"));
            //new 参考款Service().save参考款(new DTO参考款("1FS", "设计点2"));
            //new 参考款Service().save参考款(new DTO参考款("1FSS1", "设计点2"));


            //Console.WriteLine(
            //                FunctionHelper.JsonSerialization(
            //                                    new 设计点Serice().get设计点By版型("KS01")
            //                    )
            //                );

            //Console.ReadKey();


            //设计点女
            //new 设计点Serice().save设计点(尖山数据Service.getDTO设计_女());

            //版型和设计点key的关联
            //new 设计点Serice().save设计点和版型的关联(new 设计点和版型的关联("KS001", "设计点1"));

            //Console.WriteLine(
            //                FunctionHelper.JsonSerialization(
            //                                    new 设计点Serice().get设计点By版型("KS01")
            //                    )
            //                );

            //参考款
            //Console.WriteLine(
            //        new 参考款Service().get设计点("1FSSK1")
            //                );



            Console.ReadKey();
        }



    internal delegate void Feedback(int value);
        /// <summary>
        /// 静态回调方法
        /// </summary>
        /// <param name="value"></param>
        private static void FeedbackToConsole(int value)
        {
            // 依次打印数字
            Console.WriteLine("Item=" + value);
        }
        /// <summary>
        /// 实例回调方法
        /// </summary>
        /// <param name="value"></param>
        private void InstanceFeedbackToConsole(int value)
        {
            Console.WriteLine("Item=" + value);
        }
        /// <summary>
        /// 使用此方法触发委托回调
        /// </summary>
        /// <param name="from">开始</param>
        /// <param name="to">结束</param>
        /// <param name="fb">委托引用</param>
        private static void Counter(int from, int to, Feedback fb)
        {
            for (int val = from; val <= to; val++)
            {
                // fb不为空，则调用回调方法
                if (fb != null)
                {
                    fb(val);
                }
                //fb?.Invoke(val); 简化版本调用
            }
        }
        /// <summary>
        /// 静态调用
        /// </summary>
        private static void StaticDelegateDemo()
        {
            Console.WriteLine("---------委托调用静态方法------------");
            Counter(1, 10, null);
            Counter(1, 10, new Feedback(FeedbackToConsole));
        }
        /// <summary>
        /// 实例调用
        /// </summary>
        private static void InstanceDelegateDemo()
        {
            Console.WriteLine("---------委托调用实例方法------------");
            Program p = new Program();
            Counter(1, 10, null);
            Counter(1, 5, new Feedback(p.InstanceFeedbackToConsole));
        }

    }
}
